package com.ruoyi.develop.project.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.develop.goodsCustomer.domain.GoodsCustomer;
import com.ruoyi.framework.web.domain.server.Sys;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目信息管理对象 project
 *
 * @author lmm
 * @date 2024-09-28
 */
public class Project extends BaseEntity {
private static final long serialVersionUID=1L;

    /** 主键 */
    private String id;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String name;

    /** 招标批次编号 */
    @Excel(name = "招标批次编号")
    private String batchNumber;


    /** 项目框架号 */
    @Excel(name = "项目框架号")
    private String code;

    /** ECP合同编号 */
    @Excel(name = "ECP合同编号")
    private String contractCode;



    /** 中标服务费 */
    @Excel(name = "中标服务费")
    private BigDecimal bidServiceMoney;

    /** 客户 */
    @Excel(name = "买方ID")
    private String customId;

    /** 买方名称 */
    @Excel(name = "买方名称")
    private String customName;


    /** 业务员ID */
    private String salesmanId;

    /** 业务员姓名 */
    private String salesmanName;



    /**
     * 业务员对象
     */
    private List<SysUser> salesmen;


    /**
     * 客户对象
     */
    private List<GoodsCustomer> customers;

    /**
     * 业务员组
     */
    private String[] salesmanIds;

    /**
     * 客户组
     */
    private String[] customerIds;





    /** 签约日期 */
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    @Excel(name = "签约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractDate;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal contractMoney;


    /** 是否回款完毕 */
    @Excel(name = "是否回款完毕")
    private String fundCallback;

    /** 回款金额 */
    @Excel(name = "回款金额")
    private BigDecimal backMoney;

    /** 剩余金额 */
    private BigDecimal remainMoney;

    /** 费用总额 */
    private BigDecimal feeMoney;

    /** 销售总额 */
    private BigDecimal saleMoney;

    /** 销售成本 */
    @Excel(name = "销售成本")
    private BigDecimal buyMoney;

    /** 利润 */
    @Excel(name = "利润")
    private BigDecimal profitMoney;


    /** 项目状态（2.去库存；3.请购中） */
    @Excel(name = "项目状态", readConverterExp = "2=.去库存；3.请购中")
    private String status;


    /** 项目来源 */
    @Excel(name = "项目来源")
    private String source;


    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }



    public void setId(String id)
            {
            this.id = id;
            }

    public String getId()
            {
            return id;
            }
    public void setDelFlag(String delFlag)
            {
            this.delFlag = delFlag;
            }

    public String getDelFlag()
            {
            return delFlag;
            }

    public void setName(String name)
            {
            this.name = name;
            }

    public String getName()
            {
            return name;
            }

    public void setCode(String code)
            {
            this.code = code;
            }

    public String getCode()
            {
            return code;
            }
    public void setBidServiceMoney(BigDecimal bidServiceMoney)
            {
            this.bidServiceMoney = bidServiceMoney;
            }

    public String getContractCode() {
        return contractCode;
    }

    public void setContractCode(String contractCode) {
        this.contractCode = contractCode;
    }

    public BigDecimal getBidServiceMoney()
            {
            return bidServiceMoney;
            }
    public void setCustomId(String customId)
            {
            this.customId = customId;
            }

    public String getCustomId()
            {
            return customId;
            }
    public void setCustomName(String customName)
            {
            this.customName = customName;
            }

    public String getCustomName()
            {
            return customName;
            }
    public void setContractDate(Date contractDate)
            {
            this.contractDate = contractDate;
            }

    public Date getContractDate()
            {
            return contractDate;
            }
    public void setContractMoney(BigDecimal contractMoney)
            {
            this.contractMoney = contractMoney;
            }

    public BigDecimal getContractMoney()
            {
            return contractMoney;
            }
    public void setFundCallback(String fundCallback)
            {
            this.fundCallback = fundCallback;
            }

    public String getFundCallback()
            {
            return fundCallback;
            }
    public void setBackMoney(BigDecimal backMoney)
            {
            this.backMoney = backMoney;
            }

    public BigDecimal getBackMoney()
            {
            return backMoney;
            }
    public void setRemainMoney(BigDecimal remainMoney)
            {
            this.remainMoney = remainMoney;
            }

    public BigDecimal getRemainMoney()
            {
            return remainMoney;
            }
    public void setFeeMoney(BigDecimal feeMoney)
            {
            this.feeMoney = feeMoney;
            }

    public BigDecimal getFeeMoney()
            {
            return feeMoney;
            }
    public void setSaleMoney(BigDecimal saleMoney)
            {
            this.saleMoney = saleMoney;
            }

    public BigDecimal getSaleMoney()
            {
            return saleMoney;
            }
    public void setBuyMoney(BigDecimal buyMoney)
            {
            this.buyMoney = buyMoney;
            }

    public BigDecimal getBuyMoney()
            {
            return buyMoney;
            }
    public void setProfitMoney(BigDecimal profitMoney)
            {
            this.profitMoney = profitMoney;
            }

    public BigDecimal getProfitMoney()
            {
            return profitMoney;
            }

    public void setStatus(String status)
            {
            this.status = status;
            }

    public String getStatus()
            {
            return status;
            }

    public String getSalesmanId() {
        return salesmanId;
    }

    public void setSalesmanId(String salesmanId) {
        this.salesmanId = salesmanId;
    }

    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public String[] getSalesmanIds() {
        return salesmanIds;
    }

    public void setSalesmanIds(String[] salesmanIds) {
        this.salesmanIds = salesmanIds;
    }

    public String[] getCustomerIds() {
        return customerIds;
    }

    public void setCustomerIds(String[] customerIds) {
        this.customerIds = customerIds;
    }

    public List<SysUser> getSalesmen() {
        return salesmen;
    }

    public void setSalesmen(List<SysUser> salesmen) {
        this.salesmen = salesmen;
    }

    public List<GoodsCustomer> getCustomers() {
        return customers;
    }

    public void setCustomers(List<GoodsCustomer> customers) {
        this.customers = customers;
    }

    @Override
    public String toString(){
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id",getId())
            .append("delFlag",getDelFlag())
            .append("createBy",getCreateBy())
            .append("createTime",getCreateTime())
            .append("updateBy",getUpdateBy())
            .append("updateTime",getUpdateTime())
            .append("remark",getRemark())
            .append("name",getName())
            .append("code",getCode())
            .append("bidServiceMoney",getBidServiceMoney())
            .append("customId",getCustomId())
            .append("customName",getCustomName())
            .append("contractDate",getContractDate())
            .append("contractMoney",getContractMoney())
            .append("fundCallback",getFundCallback())
            .append("backMoney",getBackMoney())
            .append("remainMoney",getRemainMoney())
            .append("feeMoney",getFeeMoney())
            .append("saleMoney",getSaleMoney())
            .append("buyMoney",getBuyMoney())
            .append("profitMoney",getProfitMoney())
            .append("status",getStatus())
        .toString();
    }
}
